Mysql对于图片的保存和取出(超详细步骤全带注释)

您所在的位置:网站首页 mfc mysql Mysql对于图片的保存和取出(超详细步骤全带注释)

Mysql对于图片的保存和取出(超详细步骤全带注释)

2024-01-21 09:10| 来源: 网络整理| 查看: 265

保存数据我用的是 mediumblob数据类型 其他图片保存类型有:

BLOB:最多可以处理65,535字节的数据。 约等于 63kb , 0.0624MB MEDIUMBLOB:支持的最大长度为16,777,215字节。 约等于 16363KB , 15.9MB LONGBLOB:最多存储4,294,967,295字节的数据。 约等于 4194303KB 4095MB 3.99GB

上传和取出的代码记得修改文件改成图片位置(现在我用的是我直接的) 不然文件会报错!!!!!!!!

package 登陆软件; import 登陆软件.Dao.DaoConnect; import java.io.*; import java.sql.PreparedStatement; import java.sql.ResultSet; /* 图片数据库选择类型 在MySQL中,用于图像存储的首选数据类型是BLOB。 但是,实际上有三种BLOB。 选择哪种图像取决于要存储的图像大小。 如有疑问,请转到更大容量的BLOB! 以下是三种BLOB类型: BLOB:最多可以处理65,535字节的数据。 约等于 63kb , 0.0624MB MEDIUMBLOB:支持的最大长度为16,777,215字节。 约等于 16363KB , 15.9MB LONGBLOB:最多存储4,294,967,295字节的数据。 约等于 4194303KB 4095MB 3.99GB */ public class 上传图片 { public static void main(String[] args) throws Exception{ 上传图片 sc=new 上传图片(); sc.imageUpload(); //上传 sc.ExifDateChanger(); //取出 } void imageUpload() throws Exception{ //图片上传 //图片的插入 String sql = "INSERT INTO img(img) VALUES (?);"; PreparedStatement ps=DaoConnect.tpdr().prepareStatement(sql); //sql语句的使用 // ps.setString(1,"qwe.jpg"); //第一个数据 如果是String类型 FileInputStream in = new FileInputStream("D:\\qqltjl2.png"); //图片位置 ps.setBinaryStream(1,in);//导入图片的类型 1 是对应我的问号他在第一个 第二个 in是保存的位置 int num = ps.executeUpdate(); //获取是否成功 if (num > 0) { System.out.println("图片插入成功!"); } else { System.out.println("图片插入失败!"); } // ps.close(); } void ExifDateChanger() throws Exception{ //取出图片 ResultSet img = DaoConnect.selectDB("SELECT img FROM img"); while (img.next()){ InputStream in = img.getBinaryStream(1); //还是通过这个格式取出数据 我放到的是第一列 OutputStream out = new FileOutputStream("C:\\Users\\hbl\\Desktop\\c12_wz\\abc.png"); //需要保存到的位置 int n = 0; //暂时不需要的 byte[] b = new byte[1024]; while ((n = in.read(b)) != -1) { out.write(b); } System.out.println("abc图片保存成功"); } } }

对于数据库的连接代码是这个,使用的时候不要忘记修改连接数据库的账号密码 以及连接使用的数据库

package 登陆软件.Dao; import java.sql.*; /* mysql的 jar 包: mysql mysql-connector-java 8.0.27 */ public class DaoConnect { //链接数据库 public static Connection tpdr() throws SQLException { Connection conn; Statement stmt; try { Driver driver=new com.mysql.cj.jdbc.Driver(); //最后应该Driver最后导入一下 DriverManager.registerDriver(driver); String url="jdbc:mysql://127.0.0.1:3306/cs?characterEncoding=utf8";//数据库名stdio // characterEncoding=utf8 编码格式 String user="root";//账号 String password="root";//密码 conn=DriverManager.getConnection(url,user,password);//传输字符串语句 } catch (Exception e) { throw new SQLException("数据库连接失败!"); //如果连接失败直接抛出异常结束运行 } return conn; } public static Statement daoConnection() throws SQLException { Connection conn; Statement stmt; try { Driver driver=new com.mysql.cj.jdbc.Driver(); //最后应该Driver最后导入一下 DriverManager.registerDriver(driver); String url="jdbc:mysql://127.0.0.1:3306/cs?characterEncoding=utf8";//数据库名stdio // characterEncoding=utf8 编码格式 String user="root";//账号 String mima="root";//密码 conn=DriverManager.getConnection(url,user,mima);//传输字符串语句 stmt=conn.createStatement(); } catch (Exception e) { throw new SQLException("数据库连接失败!"); //如果连接失败直接抛出异常结束运行 } return stmt;//传输过去我的值 } public static int daoZSG(String sql) //添加修改删除 封装起来上面直接调用就可以了 { int a=-1; try { a=daoConnection().executeUpdate(sql);//吧sql语句放进去 daoConnection().close();//关闭数据库 } catch (Exception e) { System.out.println("数据库连接失败"); } return a;//返回是否成功 1为成功 -1为不成功 } public static ResultSet selectDB(String sql){ ResultSet resultSet=null; try { resultSet = daoConnection().executeQuery(sql);//获取数据库存储的值 daoConnection().close();//关闭数据库 } catch (Exception e) { System.out.println("数据库查询失败"); } return resultSet; } }

其他:

对于数据库的保存 把这里改成图像就可以对于数据库进行图片预览

 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3